package org.frxm.utilslibrary;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 作者 frxm
 * 时间 2017/1/4
 * 版本 1
 * SHA:安全哈希算法
 * 不可逆，类似MD5
 */

public class SHA {

    /*加密
    * 参数说明：
    * 1、散列算法：SHA-1、SHA-224、SHA-256、SHA-384、SHA-512
    * 2、待加密的内容*/
    public static byte[] encryptedSHA(String shaN,byte[] data)
    {
        try {
            MessageDigest digest=MessageDigest.getInstance(shaN);
            digest.update(data);
            return digest.digest();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
    /*加密。结果为字符串*/
    public static String encryptedSHAToStr(String shaN,byte[] data)
    {
        try {
            MessageDigest digest=MessageDigest.getInstance(shaN);
            digest.update(data);
            byte[] val= digest.digest();
            StringBuffer buffer=new StringBuffer();
            for (byte b : val) {
                buffer.append(String.format("%2x",b));
            }
            return buffer.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}
